package com.ruoyi.system.media;


import com.alibaba.fastjson2.annotation.JSONField;

/**
 * 双片式OBU缴费信息文件(DF01/EF04)解码信息
 *
 * @author wuxi_twz
 */
public class ObuEf04Model {
    /**
     * 分省信息最大数量(20个)
     */
    public static final int MAX_PROV_COUNT = 20;

    /**
     * 用户卡0019文件前39BYTES(到nVSign)(315-353,39,bn)
     */
    @JSONField(ordinal = 1)
    public Ucard0019Dd39 uc0019 = new Ucard0019Dd39();

    /**
     * 用户卡0015文件前20BYTES(到cCardsId)(354-373,20,bn)
     */
    @JSONField(ordinal = 2)
    public Ucard0015Dd20 uc0015 = new Ucard0015Dd20();

    /**
     * 用户类型写入0015文件第 41 字节(374-374,1,n)
     */
    @JSONField(ordinal = 3)
    public int nUserCls = 0;

    /**
     * 累计通行省份数量(375-375,1,n)
     * 根据 OBU返回状态判断后累加写入。入口置 1 出口清 0
     */
    @JSONField(ordinal = 4)
    public int provCount = 0;

    /**
     * 全程累计应收金额(376-378,3,n)
     * 单位：分
     */
    @JSONField(ordinal = 5)
    public int sumPayFee = 0;

    /**
     * 全程累计实收金额(379-381,3,n)
     * 单位：分
     */
    @JSONField(ordinal = 6)
    public int sumFee = 0;

    /**
     * 全程累计成功次数(382-383,2,n)
     * ETC门架系统（含兼具门架功能的收费站入出口）根据 OBU返回状态判断后累加写入
     */
    @JSONField(ordinal = 7)
    public int sumOkCount = 0;

    /**
     * 全程累计计费里程(384-386,3,n
     * 单位米
     */
    @JSONField(ordinal = 8)
    public int sumMile = 0;

    /**
     * 全程累计无卡次数(387-387,1,n)
     */
    @JSONField(ordinal = 9)
    public int sumNCardCount = 0;

    /**
     * 本省入口HEX编码(388-390,3,bn)
     * 入口收费站（本省为入口匝道HEX,外省可能写入 3 字节 0x00）或省界入口门架 HEX 码
     */
    @JSONField(ordinal = 10)
    public String provEntyHex = "000000";

    /**
     * 本省累计应收金额(391-393,3,n)
     * 单位：分
     * ETC 门架系统（含兼具门架功能的收费站入出口）根据 OBU 返回状态判断后累加写入应收金额，进入下一省后重新计数
     */
    @JSONField(ordinal = 11)
    public int provSumPayFee = 0;

    /**
     * 本省累计成功次数(394-394,1,n)
     * ETC 门架系统（含兼具门架功能的收费站入出口）根据 OBU 返回状态判断后累加写入，进入下一省后重新计数
     */
    @JSONField(ordinal = 12)
    public int provSumCount = 0;

    /**
     * 本省累计实收金额(395-397,3,n)
     * ETC 门架系统（含兼具门架功能的收费站入出口）根据 OBU 返回状态判断后累加写入，进入下一省后重新计数
     */
    @JSONField(ordinal = 13)
    public int provSumFee = 0;

    /**
     * 加密摘要(398-405,8,bn)
     * 入出口默认为0x0000000000000000
     */
    @JSONField(ordinal = 14)
    public String cMarkDat = "0000000000000000";

    /**
     * 通行省份累计实收金额(406-485,80,bn)
     * 顺序记录，每过一个省增加4个字节，格式为：AABBBBBB-AA为省份的BCD区号;BBBBBB-为该省累计实收金额(如：河南1分:0x41000001)
     * 最多记录20个分省信息
     */
    @JSONField(ordinal = 15)
    public ObuProv[] provTolls = new ObuProv[MAX_PROV_COUNT];

    /**
     * 构造函数
     */
    public ObuEf04Model() {
        for (int aa = 0; aa < MAX_PROV_COUNT; aa++)
            provTolls[aa] = new ObuProv();
    }
}
